package cn.itcast.www.genericTest;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;

interface GeneircInteface<T> {

	T method1(T obj);
}

interface CommonInteface {

	Integer method2(Integer obj);
}

class BaseGeneirc<R> implements GeneircInteface<R> {

	protected R result;

	@Override
	public R method1(R obj) {
		return obj;
	}

}

public class GenericClass<A> extends BaseGeneirc<A> implements GeneircInteface<A>, CommonInteface {

	@Override
	public A method1(A obj) {
		result = obj;
		return result;
	}

	public Integer method2(Integer obj) {
		return obj;
	}

	public <T, E extends Throwable> T method3(T obj) throws E {
		return obj;
	}
	
	public static final void method4(){
		
	}
}


